package com.xbongbong.saas.service;

import com.xbongbong.paas.pojo.dto.ValidateDataDTO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.pro.product.pojo.dto.SettleAccountsDTO;
import com.xbongbong.pro.product.pojo.dto.SettleAccountsListDTO;
import com.xbongbong.pro.product.pojo.vo.SettleAccountsListVO;
import com.xbongbong.pro.product.pojo.vo.SettleAccountsVO;

import java.util.List;

/** 结账业务
 * @author ruansicheng
 * @version v1.0
 * @date 2021/11/19 2:13
 * @since v1.0
 */
public interface SettleAccountsService {
    /**
     *  获取上一次结账日期，系统启用日期
     * @throws XbbException 业务异常
     * @author ruansicheng
     * @date 2021/11/19 2:13
     */
    SettleAccountsVO getCheckDate(BaseDTO baseDTO) throws XbbException;

    /**
     *  新增结账
     * @param searchCustomerDTO
     * @throws XbbException 业务异常
     * @author ruansicheng
     * @date 2021/11/19 2:13
     */
    SettleAccountsVO addSettleAccounts(SettleAccountsDTO searchCustomerDTO) throws XbbException;

    /**
     *  新增反结账
     * @param searchCustomerDTO
     * @throws XbbException 业务异常
     * @author ruansicheng
     * @date 2021/11/19 2:13
     */
    SettleAccountsVO antiSettlement(SettleAccountsDTO searchCustomerDTO) throws XbbException;

    /**
     *  结账&反结账列表接口
     * @param settleAccountsListDTO saas特殊校验数据入参
     * @throws XbbException 业务异常
     * @author ruansicheng
     * @date 2021/11/19 2:13
     */
    SettleAccountsListVO getSettleAccountsList(SettleAccountsListDTO settleAccountsListDTO) throws XbbException;
}
